A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The present invention generally relates to desktop management systems and, more particularly, to a hardware component interface which provides information regarding manageable hardware and software components of a desktop computer system to applications requesting such information.
2. Description of Related Art
A variety of systems for managing manageable devices, i.e., intelligent hardware devices capable of supporting a software configured management agent, have been disclosed in the art. In order to manage a manageable device, the management system must collect information from the device. To collect this information, management systems typically include a management application which interacts with the management agent to extract the desired information from the device. For example, the management application may use the Simple Network Management Protocol (or xe2x80x9cSNMPxe2x80x9d), a widely used interoperable network management protocol, to retrieve or change the value of items made available by the management agent. The collected information is then processed by the management application, for example, by making the information available for analysis by an administrator. One such management system which is commercially available is commonly referred to as the xe2x80x9cCompaq Insight Managerxe2x80x9d and is described in U.S. patent application Ser. Nos. 07/933,920 (now U.S. Pat. No. 5,471,617) and 08/060,296, both of which are assigned to the Assignee of the present application and are hereby incorporated by reference as if reproduced in their entirety.
The Compaq Insight Manager utilizes an enterprise management information base (or xe2x80x9cMIBxe2x80x9d) to manage manageable devices. A MIB is a data base that describes a set of items that the management application and agents use to report and control managed devices. Within a MIB is a structure for organizing managed items. To form the structure, the MIB defines a group or groups for organizing related pieces of information. Groups may contain information in the form of items or xe2x80x9cobjectsxe2x80x9d, sub-groups, or a combination of the two. Similarly, each sub-group is configured like a group. Within a group or sub-group, data may be organized in one of two basic methodsxe2x80x94as scalar items or as tables.
A scalar item is a single piece of information that is within a group. For example, the total memory in a server is a scalar item. A table is a structure for organizing data that requires more information to uniquely identify a single data item within a group of similar items. An example of an item that is best organized in a table is an EISA board ID. A MIB may also contain trap definitions. A trap is a notification sent by the SNMP agent to the management application to inform the application about an event that has occurred at the device.
Like the Compaq Insight Manager, other management applications also require a method of obtaining information from management devices. Traditionally, each independent software vendor (or xe2x80x9cISVxe2x80x9d) who has developed a management application have satisfied this requirement by designing a unique application program interface (or xe2x80x9cAPIxe2x80x9d) between the management application and the management device. For example, if an ISV developed a management application which needed to know the integrated drive electronics (or xe2x80x9cIDExe2x80x9d) hard drive serial number, the ISV had to be concerned with I/O ports, the handling of IRQs triggered when the command to the IDE drive was issued and other issues which require device virtualization. Thus, as each ISV has needed to include a significant level of detail regarding each manageable device to be managed by their application, management applications remain both expensive and time consuming to design and limited as to the particular selection of devices for which they are able to manage. Furthermore, these problems are expected to be further aggravated under the Windows 95 operating system released in August, 1995.
Thus, it can be readily seen from the foregoing that it would be desirable to provide a common interface between the manageable devices and the management applications seeking information regarding the devices such that any management application could utilize the interface to receive the information. It is, therefore, the object of this invention to provide such an interface.
In one embodiment, the present invention is of a manageable computer system comprised of a plurality of manageable devices, each of which are coupled to a hardware component interface (HCI) by a corresponding one of a plurality of device drivers. A management application for managing the manageable devices using management information received from the computer system is coupled to the HCI by a management agent. Contained in the HCI is a first data structure which describes management information available for each one of the manageable devices and a pointer to locational information which indicates where, within the computer system, the available management information is maintained. The HCI receives a request for information from the management application and, using the first data structure and the locational information, retrieves the requested information from the computer system. The retrieved information is then propagated to the management application.
In one aspect thereof, a first storage facility is coupled to the HCI. In this aspect, the requested information may be selectively maintained at either the first storage facility or at the manageable device to which the requested information pertains. In another aspect thereof, a second storage facility, such as a registry, is also coupled to the HCI. In this aspect, the requested information may be selectively maintained at either the first storage facility, the second storage facility or at the manageable device to which the requested information pertains.
In further aspects thereof, the HCI may include either a dynamic linked library (DLL) or a DLL and a function calls area. The DLL contains the first data structure which describes available management information for each one of the plurality of manageable devices while the function calls area contains the locational information as to where, within the computer system, the available management information is maintained.
In still further aspects thereof, the first data structure may include a plurality of device branches, a plurality of device branches and a security branch or a plurality of device branches and a thermal branch. Each of the device branches describes the available management information for a corresponding one of the plurality of manageable devices and may include a CPU branch, a CPU cache branch, a floppy drive branch, a FPU branch, an IDE drive branch, a keyboard branch, a memory module branch, a network interface card branch, an ISA plug and play device branch, a parallel port branch, a PCI bus branch, a ROM branch, an option ROM branch, a serial port branch, a system board branch, a system memory branch, a system ROM branch and a video branch. The security branch describes asset security features for the computer system while the thermal branch describes thermal conditions for the computer system.
In yet another aspect thereof, the management agent includes a mapper. The mapper translates management information described by the HCI using the first data structure into a second data structure interpretable by the management application.
In another embodiment, the present invention is of a manageable computer system comprised of a storage facility, a plurality of manageable devices and a hardware component interface (HCI). Each one of the plurality of manageable devices is coupled to the HCI by a corresponding one of a plurality of device drivers. The HCI includes a dynamic linked library (DLL) which contains a first data structure which describes available management information for each one of the plurality of manageable devices, a function calls area, which contains locational information as to where, within the storage facility or the plurality of manageable devices, the available management information is maintained, coupled to the DLL, and a buffer coupled to the storage facility and the plurality of device drivers.
A management application which manages the plurality of manageable devices using management information received from the computer system is coupled to a management agent which includes a mapper coupled to the DLL and the buffer. The mapper translates information requests issued by the management application and described using the second data structure into information requests described using the first data structure. The DLL receives the translated requests for information from the mapper and, using the first data structure and the locational information, retrieves the requested information from either the storage facility or the manageable device to which the requested information pertains for placement in the buffer. The retrieved information is then propagated to the mapper for translation into the second data structure and transmission to the management application.
In one aspect thereof, the first data structure further includes at least one device branch which describes the available management information for a corresponding one of the manageable devices and a security branch which describes asset security features for the computer system. In another aspect thereof, the first data structure further includes at least one device branch which describes the available management information for a corresponding one of the manageable devices and a thermal branch which describes thermal conditions for the computer system.
In another embodiment, the present invention is of a method for managing at least one manageable device using a management application. A data structure is generated for the manageable devices. Requests, issued by the management application, for management information are correlated to the data structure. The requested management information is then retrieved using the correlated request and the retrieved information delivered to the management application. In one aspect thereof, the management information requests issued by the management application are application specific while the data structure for the manageable devices is a non-application specific data structure. In another aspect thereof, requests for management information are correlated to the data structure by translating a description of the application specific request to a corresponding, non-application specific component structure.